package com.baomidou.plugin.idea.mybatisx.advance.processor;

import com.baomidou.plugin.idea.mybatisx.advance.problem.MPProblem;
import com.intellij.psi.PsiAnnotation;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;

import java.util.Collection;

/**
 * @author Plushnikov Michail
 */
public interface MPProcessor {
  <Psi extends PsiElement> boolean acceptAnnotation(@NotNull PsiAnnotation psiAnnotation, @NotNull Class<Psi> type);

  @NotNull
  String getSupportedAnnotation();

  Collection<MPProblem> verifyAnnotation(@NotNull PsiAnnotation psiAnnotation);
}
